package com.test.数据结构与算法.stack;

import java.util.LinkedList;
import java.util.Random;

public class StackImp<T> implements Stack<T> {
	private LinkedList<T> storage = new LinkedList<>();

	/**
	 * 栈是否为空
	 */
	@Override
	public boolean isEmpty() {
		return storage.isEmpty();
	}

	/**
	 * data元素入栈
	 */
	@Override
	public void push(T data) {
		storage.add(data);
	}

	/**
	 * 返回栈顶元素,未出栈,如果栈为空抛出NoSuchElementException
	 */
	@Override
	public T peek() {
		return storage.getFirst();
	}

	/**
	 * 出栈,返回栈顶元素,同时从栈中移除该元素
	 * 如果栈为空抛出NoSuchElementException
	 */
	@Override
	public T pop() {
		return storage.removeFirst();
	}

	public static void main(String[] args) {
//		StackImp<String> test = new StackImp<>();
//		String peek = test.pop();
//		System.out.println(peek);
//		ArrayList arr = new ArrayList();
//		arr.add("1");
//		arr.add("2");
//		Object o = arr.get(0);
//		System.out.println(o instanceof String);
		Random random = new Random();
		for (int i = 0; i < 10; i++) {
//			random.
			System.out.println(random.nextInt(10));
		}
	}
}
